package cn.itcast.mapper;

import cn.itheima.users.pojo.User;
import cn.itheima.users.vo.UserReportVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.time.LocalDate;
import java.util.List;

@Mapper
public interface UserMapper {

    /**
     * 根据openid查询用户
     *
     * @param openid wx的唯一标识
     * @return 用户信息
     */
    @Select("select * from user where openid = #{openid}")
    User getByOpenid(String openid);

    /**
     * 插入数据
     *
     * @param user 用户信息
     */
    void insert(User user);

    /**
     * 根据id查询用户
     *
     * @param userId 用户id
     * @return 用户信息
     */
    @Select("select * from user where id = #{userId}")
    User getById(Long userId);

    /**
     * 根据开始时间和结束时间查询用户数量
     *
     * @param startTime 开始时间
     * @param endTime   结束时间
     * @return 用户统计信息
     */
    List<UserReportVO> countByTime(LocalDate startTime, LocalDate endTime);
}
